<p>
  Write a CUDA program that computes the prefix sum (cumulative sum) of an array of 32-bit floating point numbers.
  For an input array <code>[a, b, c, d, ...]</code>, the prefix sum is <code>[a, a+b, a+b+c, a+b+c+d, ...]</code>.
</p>

<h2>Implementation Requirements</h2>
<ul>
  <li>Use only CUDA native features (external libraries are not permitted)</li>
  <li>The <code>solve</code> function signature must remain unchanged</li>
  <li>The result must be stored in the <code>output</code> array</li>
</ul>

<h2>Example 1:</h2>
<pre>
Input: [1.0, 2.0, 3.0, 4.0]
Output: [1.0, 3.0, 6.0, 10.0]
</pre>

<h2>Example 2:</h2>
<pre>
Input: [5.0, -2.0, 3.0, 1.0, -4.0]
Output: [5.0, 3.0, 6.0, 7.0, 3.0]
</pre>

<h2>Constraints</h2>
<ul>
  <li>1 &le; <code>N</code> &le; 100,000,000</li>
  <li>-1000.0 &le; <code>input[i]</code> &le; 1000.0</li>
  <li>The largest value in the output array will fit within a 32-bit float</li>
</ul>